import java.util.ArrayList;
import java.util.List;

public class code {
    public static void main(String[] args) {
        ArrayList<Integer> arrayList1 = new ArrayList<>();
        arrayList1.add(10);
        arrayList1.add(20);
        arrayList1.add(30);
        arrayList1.add(40);
        List<Integer> list = arrayList1.subList(0,2);
        System.out.println(list);
    }
    public static void main4(String[] args) {
        ArrayList<Integer> arrayList1 = new ArrayList<>();
        arrayList1.add(10);
        arrayList1.add(20);
        ArrayList<Number> arrayList2 = new ArrayList<>(arrayList1);
        System.out.println(arrayList2);//[10, 20]
    }
    public static void main3(String[] args) {
        ArrayList<Integer> arrayList = new ArrayList<>();
        //这里的Integer就是E类型
        //可以直接将arrayList作为参数进行传递(因为arrayList的类型为ArrayList实现了Collection接口
        ArrayList<Integer> arrayList2 = new ArrayList<>(arrayList);

    }
    public static void main2(String[] args) {
        //ArrayList创建方式1
        ArrayList<Integer> arrayList = new ArrayList<>();

        // ArrayList创建方式2，推荐写法(因为ArrayList实现了List接口)
        // 构造一个空的列表
        List<Integer> list1 = new ArrayList<>();
        // 构造一个具有10个容量的列表
        List<Integer> list2 = new ArrayList<>(10);
        list2.add(1);
        list2.add(2);
        list2.add(3);
        // list2.add("hello"); // 编译失败，List<Integer>已经限定了，list2中只能存储整形元素
        // list3构造好之后，与list中的元素一致
        ArrayList<Integer> list3 = new ArrayList<>(list2);
        // 避免省略类型，否则：任意类型的元素都可以存放，使用时将是一场灾难
        List list4 = new ArrayList();
        list4.add("111");
        list4.add(100);
    }
    public static void main1(String[] args) {
        MyArrayList myArrayList = new MyArrayList();
        myArrayList.add(1);
        myArrayList.add(2);
        myArrayList.add(3);
        myArrayList.add(4);
        myArrayList.add(5);
        myArrayList.add(6);
        myArrayList.remove(7);
        myArrayList.display();

    }
}
